package api

import (
	"blog/app/model/admin"
	"blog/core/request"

	"github.com/gin-gonic/gin"
)

type AdminApi struct {
}

// Lists 管理员列表
// 	参数
// 		ctx	路由上下文
func (a *AdminApi) Lists(ctx *gin.Context) {
	req := request.Request(ctx)
	page := req.InputIntDefault("page", 1)
	limit := req.InputIntDefault("limit", 10)
	lists, count := ServiceGroup.Admin.Lists(page, limit)
	req.Response().Count(count).Message("查询成功").Data(lists).Success()
}

// Create 添加管理员
// 	参数
//		ctx	路由上下文
func (a *AdminApi) Create(ctx *gin.Context) {
	req := request.Request(ctx)
	param := &admin.CreateAdmin{
		Password: req.InputStr("password"),
		Account:  req.InputStr("account"),
		Name:     req.InputStr("name"),
	}

	req.Response().WithErr(ServiceGroup.Admin.Create(param))
}

// Create 编辑管理员
// 	参数
//		ctx	路由上下文
func (a *AdminApi) Edit(ctx *gin.Context) {
	req := request.Request(ctx)
	id := req.ParamInt("id")
	param := &admin.CreateAdmin{
		Name:     req.InputStr("name"),
		Password: req.InputStringDefault("password", ""),
	}
	req.Response().WithErr(ServiceGroup.Admin.Edit(id, param))
}

// Create 删除管理员
// 	参数
//		ctx	路由上下文
func (a *AdminApi) Del(ctx *gin.Context) {
	req := request.Request(ctx)
	id := req.ParamInt("id")
	if id == 1 {
		req.Response().Message("此帐号不能删除").Error()
		return
	}

	req.Response().WithErr(ServiceGroup.Admin.Del(id))
}
